/**
 * Tencent is pleased to support the open source community by making polaris-go available.
 *
 * Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved.
 *
 * Licensed under the BSD 3-Clause License (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * https://opensource.org/licenses/BSD-3-Clause
 *
 * Unless required by applicable law or agreed to in writing, software distributed
 * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
 * CONDITIONS OF ANY KIND, either express or implied. See the License for the
 * specific language governing permissions and limitations under the License.
 */

package v2

import (
	"time"

	"github.com/polarismesh/specification/source/go/api/v1/traffic_manage/ratelimiter"
)

// ClientRateLimitReportRequest 客户端视角的上报请求
type ClientRateLimitReportRequest struct {
	Service   string
	Namespace string
	Labels    string
	QuotaUsed map[time.Duration]*ratelimiter.QuotaSum
	Timestamp int64
}

// NewClientRateLimitReportRequest 创建上报请求对象
func NewClientRateLimitReportRequest() *ClientRateLimitReportRequest {
	return &ClientRateLimitReportRequest{
		QuotaUsed: make(map[time.Duration]*ratelimiter.QuotaSum),
	}
}
